/**
 * 
 */
package spitfire.ksim.network;

import spitfire.ksim.util.TPoint;

/**
 * @author Adam
 *
 */
public interface KNetworkModule {
	public void connectNetwork(KNetwork network);
	public void disconnectNetwork();
	public Object getHost();
	public void setNetAddr(KNetAddress netAddr);
	public KNetAddress getNetAddr();
	public KNetwork getNetwork();
	public TPoint getLocation();
	public boolean adjacentWith(KNetworkModule netModule);
	public void addNetworkModuleListener(KNetworkModuleListener l);
	public void removePacketRecvListener(KNetworkModuleListener l);
	public void send(KNetAddress destination, Object payload);
	public void recv(KPacket packet);
}
